小時候超級任天堂的主機可以在 很低記憶體與CPU裡作出精美的大作,而現在動不動就在比主機的效能。程式開發也是,現在程式碼的效率常常被寬容地對待。比起以前低階語言的時代,現在程式碼的效率常常被寬容地對待,在某種程度上,這是合理的,因為記憶體相對便宜,而工程師的成本很高(應該) 。至少昨天 JCConf 有講者說買 Mac 約是工程師 1-2 月的薪水,但可以增加工程師效率。
然而,程式碼本身的效率也不輕忽。也許你的應用程式正在數百萬的裝置上運行,所以它消耗了大量的能源,而一些電池使用優化可能節省了足夠的能源來供電一個小城市。也許你的公司為伺服器及其維護支付了大量的錢,而某些優化可能使這顯著地更便宜。
從長遠來看,效率是很重要的,但優化並不容易。過早的優化往往 B > Z。然後,有一些規則可以幫助你作出更高效的程式。這些是便宜的勝利:它們幾乎不花任何成本,但它們仍然可以幫助我們顯著提高性能。當它們不足夠時,我們應該使用分析器並優化性能的關鍵部分,JCConf 也有講者提到有些關鍵部分考慮使用 C++ 優化。
這些章節著重於可以應用於每日開發的一般規則來優化。關於在程式關鍵部分,Kotlin 的性能如何可能被優化。可讀性、安全性還有性能之間是需要權衡的。
重複使用一個物件,而不是每次建立是一種非常簡單的方法,使用 object 宣告(singleton)。可以避免每次都建立物件。這是一個常見技巧,尤其是當我們在用 sealed 建模時,對於沒有傳入值的成員。我們可以直接定義成 object,那在每次取用時就不會重新 new 了
sealed class ManagerMessage
class CodeProduced(val code: String) : ManagerMessage()
object ProductionStopped : ManagerMessage()
sealed interface AdView
object FacebookAd : AdView
object GoogleAd : AdView
class OwnAd(val text: String, val imgUrl: String) : AdView
I Want That (G)I-DLE 是最新英文歌曲,收錄在她們首張英語迷你專輯《HEAT》中作為主打歌,昨天已釋出 MV 並已有200萬個觀看次數。